package 所有的题类.ZA.链表;

import com.kiwi.nixu.common.LNode;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Stack;

public class 移除链表元素 {

    public static LNode arrayToListNode(List<Integer> arrayList){
        LNode lNode=null;
        LNode head=null;
        for (int i = 0; i < arrayList.size(); i++) {
            if(lNode!=null){
                LNode tmp =new LNode(arrayList.get(i));
                lNode.next=tmp;
                lNode=tmp;
            }else{
                lNode =new LNode(arrayList.get(i));
                head =lNode;
            }
        }
        return head;
    }

    public static void main(String[] args) {

        //LNode lNode = arrayToListNode(Arrays.asList(6,2,6,3,4,5,6));
        //LNode lNode1 = removeElements(lNode, 6);
        //System.out.println(lNode1.data);
        LNode lNode = arrayToListNode(Arrays.asList(1,3,2));
        System.out.println(reversePrint(lNode));
    }

    public static int[] reversePrint(LNode head) {
        Stack<Integer> stack=new Stack();
        List<Integer> list=new ArrayList();
        while(head!=null){
            stack.add(head.data);
            head=head.next;
        }
        int[] a =new int[stack.size()];

        for(int i=0;i<stack.size();i++){
            a[i]=stack.pop();
        }
        return a;
    }

    //进行递归
    public static LNode removeElements(LNode head, int val) {
        if(head==null) {
            return null;
        }
        head.next=removeElements(head.next,val);
        if(head.data==val){
            return head.next;
        }else{
            return head;
        }
    }

}
